﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Studio7i.Dominio;

namespace Studio7i.Negocio
{
    interface IAdministracionService
    {
        #region Operaciones de negocio entidad SALA
        Sala InscribirSala(string Nombre, int CodLocal, int Capacidad, string Caracteristicas);
        
        #endregion

        #region Operaciones de negocio entidad INSTRUMENTO
        Instrumento RegistrarInstrumento(String tipo, String marca, String modelo, DateTime FechFabricacion, String caracteristicas, int CostoHora, bool Estado);
        #endregion

        #region Operaciones de negocio entidad CLIENTE
        Cliente RegistrarCliente(int coduser, string nombUsuario, string clave, string dni, string nombres, string apellidos, string email, DateTime fechaNac);
        #endregion

        #region Operaciones de negocio entidad SERVICIO
        Servicio RegistrarServicio(int codserv, string Descripcion, int costoHora);
        #endregion

        
        #region Métodos de soporte para entidad Local
        Local CrearLocal(Local localACrear);
        Local ObtenerLocal(int codigo);
        Local ModificarLocal(Local localAModificar);
        ICollection<Local> ListarLocalesXNombre(string nombre);
        ICollection<Local> ListarLocales();
        void EliminarLocal(Local localAEliminar);
        #endregion

        #region Métodos de soporte para entidad Sala
        Sala CrearSala(Sala salaACrear);
        Sala ObtenerSala(int codigo);
        Sala ModificarSala(Sala salaAModificar);
       // ICollection<Sala> ListarSalasXNombre(string nombre);
        //ICollection<Sala> ListarSalas();
        void EliminarSala(Sala salaAEliminar);
        ICollection<Sala> ListarSalas(int? CodSala, string Nombre, int? CodLocal, int? Capacidad, string Caracteristicas);
        #endregion

        #region Métodos de soporte para entidad Instrumento
        ICollection<Instrumento> ListarInstrumentos(int? CodInst, string Tipo, string Marca, string Modelo, DateTime FechFabricacion, string Caracteristicas, int? CostoHora, bool Estado, int? CodSala);
        #endregion

        #region Métodos de soporte para entidad Servicio
        Servicio CrearServicio(Servicio servicioACrear);
        Servicio ObtenerServicio(int codigo);
        Servicio ModificarServicio(Servicio servicioAModificar);
        ICollection<Servicio> ListarServicios();
        ICollection<Servicio> ListarServiciosXDescripcion(string descripcion);
        void EliminarServicio(Servicio servicioAEliminar);
        #endregion

        #region Métodos de soporte para entidad Cliente
        //ICollection<Cliente> ListarClientes(int? coduser, string nombUsuario, string clave, string dni, string nombres, string apellidos, string email, DateTime fechaNac);
        #endregion
    }
}

